package cn.niit.smbmsdemo.controller;


import cn.niit.smbmsdemo.entity.User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpSession;

@Controller
public class LoginController {
//    @GetMapping("/login")
//    public String login(){
//        return "login";
//    }

    /**
     * 首页
     *
     * @param session
     * @param
     * @return
     */
    @GetMapping("/index")
    public String index(HttpSession session) {
        if (isLogin(session)) {
            return "index";
        }
        return "redirect:/login";
    }

    /**
     * //当未登陆用户访问登录页面时，加载显示登陆页面
     *
     * @return
     */
 //   @GetMapping("/login")
//    public String login(String username,String password){
//        System.out.println("username = " + username +"password = "+ password);
//
    @GetMapping("/login")
    public String login(HttpSession session) {
        if (isLogin(session)) {
            return "index";
        }
        return "login";

    }
    private boolean isLogin(HttpSession session) {
        Object user = session.getAttribute("user");//用户信息保存在session中
        if (null != user) {
            return true;
        }
        return false;
    }

    /**
     * //登陆操作，当用户点击登陆页面“登陆”按钮时触发
     *
     * @param username
     * @param password
     * @return
     */

//
//    @PostMapping("/index")
//    public String toLogin(String username,String password){
//        System.out.println("username = " + username +"password = "+ password);
//        return "index" ;
//    }

   @PostMapping("/login")
    public String toLogin(Model model, HttpSession session, @RequestParam("username") String username, @RequestParam("password") String password) {
        /**  校验参数是否为空 */
        if ("".equals(username.trim()) || "".equals(password.trim())) {
            model.addAttribute("errMsg", "用户名/密码不能为空!");
            System.out.println("用户名/密码不能为空!");
            return "login";
        }
        System.out.println("用户输入的账号、密码: username = " + username + " password = " + password);
        /**第一步;根据用户名(username)拿到数据库的账号密码*/
        User mysqlUser = new User(username);
        System.out.println("mysqlUser = " + mysqlUser);
        /**第二步;校验数据库的密码和用hu输入的密码是否一致*/
        if (!password.equals(mysqlUser.getPassword())) {
            model.addAttribute("errMsg", "密码错误!");
            return "login";
        }
        /**第三步:将用户登录信息存放至会话(session）当中*/
        session.setAttribute("user", mysqlUser);
        /**这里不应该使用转发(forward ），应该使用重定向(redirect)*/
        //return "index";     //走转发
        return "redirect:/index";  //走重定向
    }

/**
 *Logout
 *@param session@return
 */
@GetMapping("/logout")
    public String logout(HttpSession session) {
        session.removeAttribute("user");
        return "redirect:/login";

    }
}